package net.expectx.pay.dao.bean;

import java.io.Serializable;
import java.math.BigDecimal;

public class ProductOrderPaymentRecord implements Serializable {
    /**
     * 主键ID
     *
     * @mbg.generated
     */
    private String recordId;

    /**
     * 订单号
     *
     * @mbg.generated
     */
    private String orderId;

    /**
     * 创建时间
     *
     * @mbg.generated
     */
    private Long gmtCreate;

    /**
     * 更新时间
     *
     * @mbg.generated
     */
    private Long gmtModified;

    /**
     * 逻辑删除（0：否，1：是）
     *
     * @mbg.generated
     */
    private Byte isDeleted;

    /**
     * 通道交易号
     *
     * @mbg.generated
     */
    private String tradeNo;

    private BigDecimal totalFee;

    /**
     * 0 付款成功  1 付款失败
     *
     * @mbg.generated
     */
    private String payStatus;

    private Long finishTime;

    /**
     * 交易概述
     *
     * @mbg.generated
     */
    private String subject;

    /**
     * 描述
     *
     * @mbg.generated
     */
    private String desc;

    /**
     * 支付方式
     *
     * @mbg.generated
     */
    private String channelPayway;

    /**
     * 支付方式名称
     *
     * @mbg.generated
     */
    private String channelPaywayName;

    /**
     * 收款帐号
     *
     * @mbg.generated
     */
    private String account;

    /**
     * 付款人ID
     *
     * @mbg.generated
     */
    private String payerUid;

    /**
     * 付款人账号
     *
     * @mbg.generated
     */
    private String payerLogin;

    /**
     * 最后一次错误信息
     *
     * @mbg.generated
     */
    private String lastErrorMessage;

    /**
     * 最后一次错误时间
     *
     * @mbg.generated
     */
    private Long lastErrorTime;

    /**
     * 退款时间
     *
     * @mbg.generated
     */
    private Long refundTime;

    /**
     * 退款金额
     *
     * @mbg.generated
     */
    private BigDecimal refundAmount;

    /**
     * 退款操作员
     *
     * @mbg.generated
     */
    private String refundOperator;

    /**
     * 退款序列号
     *
     * @mbg.generated
     */
    private String refundRequestNo;

    /**
     * 0 付款成功  1 付款失败
     *
     * @mbg.generated
     */
    private String refundStatus;

    /**
     * 0 付款成功  1 付款失败
     *
     * @mbg.generated
     */
    private String refundReason;

    private static final long serialVersionUID = 1L;

    private PaymentChannel paymentChannel;

    public PaymentChannel getPaymentChannel() {
        return paymentChannel;
    }

    public void setPaymentChannel(PaymentChannel paymentChannel) {
        this.paymentChannel = paymentChannel;
    }

    public String getRecordId() {
        return recordId;
    }

    public void setRecordId(String recordId) {
        this.recordId = recordId;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public Long getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Long gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Long getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(Long gmtModified) {
        this.gmtModified = gmtModified;
    }

    public Byte getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Byte isDeleted) {
        this.isDeleted = isDeleted;
    }

    public String getTradeNo() {
        return tradeNo;
    }

    public void setTradeNo(String tradeNo) {
        this.tradeNo = tradeNo;
    }

    public BigDecimal getTotalFee() {
        return totalFee;
    }

    public void setTotalFee(BigDecimal totalFee) {
        this.totalFee = totalFee;
    }

    public String getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(String payStatus) {
        this.payStatus = payStatus;
    }

    public Long getFinishTime() {
        return finishTime;
    }

    public void setFinishTime(Long finishTime) {
        this.finishTime = finishTime;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public String getChannelPayway() {
        return channelPayway;
    }

    public void setChannelPayway(String channelPayway) {
        this.channelPayway = channelPayway;
    }

    public String getChannelPaywayName() {
        return channelPaywayName;
    }

    public void setChannelPaywayName(String channelPaywayName) {
        this.channelPaywayName = channelPaywayName;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPayerUid() {
        return payerUid;
    }

    public void setPayerUid(String payerUid) {
        this.payerUid = payerUid;
    }

    public String getPayerLogin() {
        return payerLogin;
    }

    public void setPayerLogin(String payerLogin) {
        this.payerLogin = payerLogin;
    }

    public String getLastErrorMessage() {
        return lastErrorMessage;
    }

    public void setLastErrorMessage(String lastErrorMessage) {
        this.lastErrorMessage = lastErrorMessage;
    }

    public Long getLastErrorTime() {
        return lastErrorTime;
    }

    public void setLastErrorTime(Long lastErrorTime) {
        this.lastErrorTime = lastErrorTime;
    }

    public Long getRefundTime() {
        return refundTime;
    }

    public void setRefundTime(Long refundTime) {
        this.refundTime = refundTime;
    }

    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    public String getRefundOperator() {
        return refundOperator;
    }

    public void setRefundOperator(String refundOperator) {
        this.refundOperator = refundOperator;
    }

    public String getRefundRequestNo() {
        return refundRequestNo;
    }

    public void setRefundRequestNo(String refundRequestNo) {
        this.refundRequestNo = refundRequestNo;
    }

    public String getRefundStatus() {
        return refundStatus;
    }

    public void setRefundStatus(String refundStatus) {
        this.refundStatus = refundStatus;
    }

    public String getRefundReason() {
        return refundReason;
    }

    public void setRefundReason(String refundReason) {
        this.refundReason = refundReason;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", recordId=").append(recordId);
        sb.append(", orderId=").append(orderId);
        sb.append(", gmtCreate=").append(gmtCreate);
        sb.append(", gmtModified=").append(gmtModified);
        sb.append(", isDeleted=").append(isDeleted);
        sb.append(", tradeNo=").append(tradeNo);
        sb.append(", totalFee=").append(totalFee);
        sb.append(", payStatus=").append(payStatus);
        sb.append(", finishTime=").append(finishTime);
        sb.append(", subject=").append(subject);
        sb.append(", desc=").append(desc);
        sb.append(", channelPayway=").append(channelPayway);
        sb.append(", channelPaywayName=").append(channelPaywayName);
        sb.append(", account=").append(account);
        sb.append(", payerUid=").append(payerUid);
        sb.append(", payerLogin=").append(payerLogin);
        sb.append(", lastErrorMessage=").append(lastErrorMessage);
        sb.append(", lastErrorTime=").append(lastErrorTime);
        sb.append(", refundTime=").append(refundTime);
        sb.append(", refundAmount=").append(refundAmount);
        sb.append(", refundOperator=").append(refundOperator);
        sb.append(", refundRequestNo=").append(refundRequestNo);
        sb.append(", refundStatus=").append(refundStatus);
        sb.append(", refundReason=").append(refundReason);
        sb.append("]");
        return sb.toString();
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        ProductOrderPaymentRecord other = (ProductOrderPaymentRecord) that;
        return (this.getRecordId() == null ? other.getRecordId() == null : this.getRecordId().equals(other.getRecordId()))
            && (this.getOrderId() == null ? other.getOrderId() == null : this.getOrderId().equals(other.getOrderId()))
            && (this.getGmtCreate() == null ? other.getGmtCreate() == null : this.getGmtCreate().equals(other.getGmtCreate()))
            && (this.getGmtModified() == null ? other.getGmtModified() == null : this.getGmtModified().equals(other.getGmtModified()))
            && (this.getIsDeleted() == null ? other.getIsDeleted() == null : this.getIsDeleted().equals(other.getIsDeleted()))
            && (this.getTradeNo() == null ? other.getTradeNo() == null : this.getTradeNo().equals(other.getTradeNo()))
            && (this.getTotalFee() == null ? other.getTotalFee() == null : this.getTotalFee().equals(other.getTotalFee()))
            && (this.getPayStatus() == null ? other.getPayStatus() == null : this.getPayStatus().equals(other.getPayStatus()))
            && (this.getFinishTime() == null ? other.getFinishTime() == null : this.getFinishTime().equals(other.getFinishTime()))
            && (this.getSubject() == null ? other.getSubject() == null : this.getSubject().equals(other.getSubject()))
            && (this.getDesc() == null ? other.getDesc() == null : this.getDesc().equals(other.getDesc()))
            && (this.getChannelPayway() == null ? other.getChannelPayway() == null : this.getChannelPayway().equals(other.getChannelPayway()))
            && (this.getChannelPaywayName() == null ? other.getChannelPaywayName() == null : this.getChannelPaywayName().equals(other.getChannelPaywayName()))
            && (this.getAccount() == null ? other.getAccount() == null : this.getAccount().equals(other.getAccount()))
            && (this.getPayerUid() == null ? other.getPayerUid() == null : this.getPayerUid().equals(other.getPayerUid()))
            && (this.getPayerLogin() == null ? other.getPayerLogin() == null : this.getPayerLogin().equals(other.getPayerLogin()))
            && (this.getLastErrorMessage() == null ? other.getLastErrorMessage() == null : this.getLastErrorMessage().equals(other.getLastErrorMessage()))
            && (this.getLastErrorTime() == null ? other.getLastErrorTime() == null : this.getLastErrorTime().equals(other.getLastErrorTime()))
            && (this.getRefundTime() == null ? other.getRefundTime() == null : this.getRefundTime().equals(other.getRefundTime()))
            && (this.getRefundAmount() == null ? other.getRefundAmount() == null : this.getRefundAmount().equals(other.getRefundAmount()))
            && (this.getRefundOperator() == null ? other.getRefundOperator() == null : this.getRefundOperator().equals(other.getRefundOperator()))
            && (this.getRefundRequestNo() == null ? other.getRefundRequestNo() == null : this.getRefundRequestNo().equals(other.getRefundRequestNo()))
            && (this.getRefundStatus() == null ? other.getRefundStatus() == null : this.getRefundStatus().equals(other.getRefundStatus()))
            && (this.getRefundReason() == null ? other.getRefundReason() == null : this.getRefundReason().equals(other.getRefundReason()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getRecordId() == null) ? 0 : getRecordId().hashCode());
        result = prime * result + ((getOrderId() == null) ? 0 : getOrderId().hashCode());
        result = prime * result + ((getGmtCreate() == null) ? 0 : getGmtCreate().hashCode());
        result = prime * result + ((getGmtModified() == null) ? 0 : getGmtModified().hashCode());
        result = prime * result + ((getIsDeleted() == null) ? 0 : getIsDeleted().hashCode());
        result = prime * result + ((getTradeNo() == null) ? 0 : getTradeNo().hashCode());
        result = prime * result + ((getTotalFee() == null) ? 0 : getTotalFee().hashCode());
        result = prime * result + ((getPayStatus() == null) ? 0 : getPayStatus().hashCode());
        result = prime * result + ((getFinishTime() == null) ? 0 : getFinishTime().hashCode());
        result = prime * result + ((getSubject() == null) ? 0 : getSubject().hashCode());
        result = prime * result + ((getDesc() == null) ? 0 : getDesc().hashCode());
        result = prime * result + ((getChannelPayway() == null) ? 0 : getChannelPayway().hashCode());
        result = prime * result + ((getChannelPaywayName() == null) ? 0 : getChannelPaywayName().hashCode());
        result = prime * result + ((getAccount() == null) ? 0 : getAccount().hashCode());
        result = prime * result + ((getPayerUid() == null) ? 0 : getPayerUid().hashCode());
        result = prime * result + ((getPayerLogin() == null) ? 0 : getPayerLogin().hashCode());
        result = prime * result + ((getLastErrorMessage() == null) ? 0 : getLastErrorMessage().hashCode());
        result = prime * result + ((getLastErrorTime() == null) ? 0 : getLastErrorTime().hashCode());
        result = prime * result + ((getRefundTime() == null) ? 0 : getRefundTime().hashCode());
        result = prime * result + ((getRefundAmount() == null) ? 0 : getRefundAmount().hashCode());
        result = prime * result + ((getRefundOperator() == null) ? 0 : getRefundOperator().hashCode());
        result = prime * result + ((getRefundRequestNo() == null) ? 0 : getRefundRequestNo().hashCode());
        result = prime * result + ((getRefundStatus() == null) ? 0 : getRefundStatus().hashCode());
        result = prime * result + ((getRefundReason() == null) ? 0 : getRefundReason().hashCode());
        return result;
    }
}